<?php

class PropertyController extends Controller {

    public function actionIndex() {
        $dataProvider = new CActiveDataProvider('Property', array(
                            'criteria' => array(
                                'condition' => 'status=1',
                                'order' => '`order` DESC',
                            )
                        ));
        $this->render('index',array('dataProvider' => $dataProvider));
    }

    /**
     * 
     */
    public function actionAdd() {
        $model = new Property();
        $values = array();
        if (isset($_POST['Property'])) {
            $model->attributes = $_POST['Property'];
            $valid = $model->validate();
            if (isset($_POST['PropertyValue'])) {
                foreach ($_POST['PropertyValue'] as $key => $item) {
                    $values[$key] = new PropertyValue();
                    $values[$key]->attributes = $item;
                    $valid = $values[$key]->validate() && $valid;
                }
            }
            if ($valid) {
                $model->created = date('Y-m-d');
                if ($model->save(false)) {
                    foreach ($values as $item) {
                        $item->property_id = $model->property_id;
                        $item->save(false);
                    }
                    Yii::app()->user->setFlash('success', "Thuộc tính sản phẩm đã được lưu");
                    $this->redirect(array('Property/index'));
                }
            }
        }
        $this->render('add', array('model' => $model, 'values' => $values));
    }

    /**
     * 
     */
    public function actionUpdate($id = null) {
        if ($id != null) {
            $model = Property::model()->findByPk($id);
            if ($model != null) {
                if (isset($_POST['Property'])) {
                    $values = array();
                    $model->attributes = $_POST['Property'];
                    $valid = $model->validate();
                    if (isset($_POST['PropertyValue'])) {
                        foreach ($_POST['PropertyValue'] as $key => $item) {
                            $values[$key] = new PropertyValue();
                            if(isset($item['property_value_id']) && is_numeric($item['property_value_id'])){
                                $object = PropertyValue::model()->findByPk($item['property_value_id']);
                                if($object!= null){
                                    $values[$key] = $object;
                                }
                            }
                            $values[$key]->attributes = $item;
                            $valid = $values[$key]->validate() && $valid;
                        }
                    }
                    if ($valid) {
                        if ($model->save(false)) {
                            foreach ($values as $item) {
                                $item->property_id = $model->property_id;
                                $item->save(false);
                            }
                            Yii::app()->user->setFlash('success', "Thuộc tính sản phẩm đã được lưu");
                            $this->redirect(array('Property/index'));
                        }
                    }
                } else {
                    $values = $model->propertyValues(array('condition'=>'status=1'));
                }
            } else {
                throw new CHttpException(404, 'Thuộc tính sản phẩm không dc tìm thấy.');
            }
        } else {
            throw new CHttpException(404, 'Thuộc tính sản phẩm không dc tìm thấy.');
        }
        $this->render('add', array('model' => $model, 'values' => $values, 'id' => $id));
    }
    
    /**
     * 
     */
    public function actionRemovevalue($id = null){
        $is_delete = false;
        if($id != null){
            $model = PropertyValue::model()->findByPk($id);
            if($model != null){
                $model->status = PropertyValue::$deleted;
                if($model->save()){
                    $is_delete = true;
                }
            }
        }
        $this->layout=false;
        header('Content-type: application/json');
        echo CJavaScript::jsonEncode(array('id_deleted' => $is_delete));
        Yii::app()->end();
    }
    
    /**
     * 
     */
    public function actionDelete($id=null){
        if ($id != null) {
            $model = Property::model()->findByPk($id);
            if ($model != null) {
                $model->status = STATUS_DELETE;
                if($model->save()){
                    Yii::app()->user->setFlash('success', "Thuộc tính này đã được xóa");
                }else{
                    Yii::app()->user->setFlash('success', "lỗi hệ thông");
                }
                $this->redirect(array('Property/index'));
            }else{
                throw new CHttpException(404, 'Thuộc tính sản phẩm không dc tìm thấy');
            }
        }else{
            throw new CHttpException(404, 'Thuộc tính sản phẩm không dc tìm thấy.');
        }
    }

}